package com.learn.security.validator;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * 用于校验的类
 * ConstraintValidator<MyConstraint, Object>
 *     MyConstraint 给什么注解使用
 *     Object 校验对象类型
 *  ## 实现ConstraintValidator后，spring自动将此类作为bean
 *  ## 可以在此类中任意调用spring容器的bean
 */
public class MyConstraintValidator implements ConstraintValidator<MyConstraint, Object> {
	
	@Override
	public void initialize(MyConstraint constraintAnnotation) {
		System.out.println("my validator init");
	}

	/**
	 * 校验的具体实现
	 * @param value 添加@MyConstraint的方法或属性
	 * @param context 暂时不知道
	 */
	@Override
	public boolean isValid(Object value, ConstraintValidatorContext context) {
		// 具体的校验
		// 这里写一个简单的类型校验
		if (value instanceof String){
			return true;
		}else {
			return false;
		}
	}

}
